home *** CD-ROM | disk | FTP | other *** search
/ Wonky Flux Batch 2019 02 / Wonky_Flux_Batch_2019-02.zip / Wonky Flux Batch 2019-02 / 024 - Big U Macroworks.dsk / GALLEY.bas < prev    next >
BASIC Source File  |  2019-02-16  |  11KB  |  143 lines

  1. 5  REM <CTRL-M><CTRL-M>*******************<CTRL-M>*                 *<CTRL-M>*     GALLEY      *<CTRL-M>* COPYRIGHT 1986, *<CTRL-M>* BY RANDY BRANDT *<CTRL-M>*                 *<CTRL-M>*******************<CTRL-M>
  2. 8  ONERR  GOTO 10000
  3. 10 SL = 1:DS = 6:DN = 1:PS$ =  CHR$(9) +"80N"
  4. 20 SD = 48700:AS =  PEEK(SD):AD =  PEEK(SD +1):A1 =  PEEK(1014):A2 =  PEEK(1015): POKE 48891, PEEK(116)
  5. 25 D$ =  CHR$(4):Q$ =  CHR$(34):CL =  -868:CS =  -958: DIM B$(5),M$(6): DIM LI$(27):C8 = 1403: DIM FILE$(70),QO(2),Q$(2):Q(0) = 6:Q$(0) = "M":Q(1) = 25:Q$(1) = "A":Q(2) = 47:Q$(2) = "Esc"
  6. 30 I = 5:H = 9:V = 7:C = 25: PRINT D$"PREFIX": INPUT PFX$:OP$ = "/": FOR I = 2 TO  LEN(PF$) -1: IF  MID$ (PF$,I,1) = "/"  THEN OP$ = PF$: GOTO 35
  7. 32  NEXT : HOME 
  8. 35  PRINT D$"-MENUS
  9. 40  PRINT D$"-GALLEY.CODE"
  10. 45 NC = 2:NS = 2:IS = 4: REM   default # columns, spaces, indent
  11. 50  PRINT  CHR$(4)"PR#3":NA$ = "None"
  12. 55 ITEMS = 6: DIM A$(IT): FOR I = 0 TO ITEMS: READ A$(I): NEXT : FOR I = 0 TO 5: READ B$(I): NEXT :B$(3) = "Slot " + STR$(DS) +" Drive " + STR$(DN): FOR I = 0 TO 6: READ M$(I): NEXT 
  13. 60  VTAB 1: PRINT : VTAB 1: CALL CL: PRINT "File: "NA$;: HTAB 34: PRINT "GALLEY MENU";: POKE C8,73: PRINT "Galley"
  14. 120  & RPT,223,79
  15. 130  VTAB 22: PRINT : & RPT,223,79: GOSUB 9500
  16. 140  & BOX,M$(0),4,3,14: CALL CL: PRINT : CALL CL: PRINT : CALL CL: PRINT : CALL CL
  17. 150  VTAB 9: PRINT : POKE C8,43: PRINT "(Now "NC")": VTAB 11: PRINT : POKE C8,43: PRINT "(Now "NS")": PRINT : POKE C8,43: PRINT "(Now "IS")": PRINT : POKE C8,43: PRINT "(Now "SL")"
  18. 170  & MENU,A$(0,)IT,1,H,V -1,C
  19. 172 X =  PEEK(0): IF X < >IT +1  THEN 198
  20. 174 QO = 2
  21. 176  VTAB 23: PRINT : PRINT "Press  M  for Main.Menu,  A  for Applesoft, or  Esc  to continue";: CALL CL: POKE C8,Q(QO): INVERSE : PRINT " "Q$(QO)" ";: NORMAL 
  22. 178  & KEY,33,24:X =  PEEK(0): IF X = 27  OR (X = 13  AND QO = 2)  THEN  GOSUB 9500: GOTO 170
  23. 180  IF X = 77  OR X = 109  OR (X = 13  AND QO = 0)  THEN X = 77: GOTO 190
  24. 182  IF X = 65  OR X = 97  OR (X = 13  AND QO = 1)  THEN X = 65: GOTO 190
  25. 184  IF   NOT (X = 8  OR X = 21)  THEN  & BEEP: GOTO 178
  26. 186  IF X = 8  THEN QO = QO -1: IF QO =  -1  THEN QO = 2
  27. 188  IF X = 21  THEN QO = QO +1: IF QO = 3  THEN QO = 0
  28. 189  GOTO 176
  29. 190  GOSUB 9800
  30. 192  IF X < >77  THEN  HOME : PRINT  CHR$(21): PRINT : PRINT "TYPE "Q$"RUN"Q$" TO RESTART.": END 
  31. 195  PRINT D$"-MAIN.MENU"
  32. 198  ON X GOTO 1000,2000,3000,4000,4400,5000: & BEEP: GOTO 170
  33. 1000  VTAB 1: HTAB 30: PRINT "  PRINT THE FILE   ";: GOSUB 9600
  34. 1010  & BOX,M$(2),7,5,13: CALL CL: PRINT : CALL CL: PRINT : CALL CL
  35. 1020  IF NA$ = "None"  THEN  VTAB 11: PRINT : HTAB 14: PRINT "Load a file first!": & BEEP: & KEY,C,24: GOTO 60
  36. 1030  VTAB 14: PRINT : HTAB 17: PRINT "Columns/Page: "NC: HTAB 17: PRINT "Fill Spaces:  "NS: HTAB 17: PRINT "Left Margin:  "IS
  37. 1035  HTAB 17: PRINT "Printer Slot: "SL
  38. 1040  & MENU,B$(0),1,1,H +3,V +3,C:X =  PEEK(0): IF X = 27  THEN 60
  39. 1050  POKE 225,NC -2: POKE 0,NS: POKE 227,IS
  40. 1060  IF X = 1  THEN  POKE 9,13: HOME : &  +: ON  PEEK(0) = 0 GOTO 1090: VTAB 23: PRINT : PRINT "Press Return";: & KEY,7,24: HOME : GOTO 60
  41. 1065  IF X < >2  THEN  & BEEP: GOTO 1090
  42. 1070  POKE 9,12: PRINT D$"PR#"SL: PRINT PS$
  43. 1080  &  +: ON  PEEK(0) = 0 GOTO 1090: PRINT  CHR$(12): PRINT D$"PR#3": GOTO 60
  44. 1090  VTAB 23: PRINT : & BEEP: PRINT "Unrecognized file format; unable to print more";: CALL CL: & KEY,24,24: GOTO 60
  45. 2000  VTAB 1: HTAB 28: PRINT "       LOAD A FILE   ";: GOSUB 9600
  46. 2010  & BOX,M$(1),7,5,13: CALL CL: PRINT : CALL CL: PRINT : CALL CL
  47. 2015  GOSUB 9600
  48. 2020  VTAB 7: PRINT : HTAB 13: PRINT "Where is the file you wish to print?": HTAB 13: PRINT "Select (1) when 'Current Directory' is correct.": PRINT : POKE C8,36: PRINT PFX$;: PRINT  SPC( 30 - LEN(PF$))
  49. 2030  & MENU,B$(2),5,1,12,11,25:X =  PEEK(0): IF X = 27 GOTO 60
  50. 2040  ON X GOTO 2190,2180,2050,2170: & BEEP: GOTO 2030
  51. 2050  VTAB 12: PRINT : HTAB 21: INVERSE : PRINT " "DS" ";: NORMAL : PRINT : GOSUB 9700
  52. 2060  & KEY,32,24:X =  PEEK(0): IF X = 27  THEN  GOSUB 9500: GOTO 2030
  53. 2065  IF X >48  AND X <56  THEN DS = X -48:X = 13
  54. 2070  IF X = 10  THEN DS = DS -1: IF DS = 0  THEN DS = 7
  55. 2080  IF X = 11  THEN DS = DS +1: IF DS = 8  THEN DS = 1
  56. 2090  IF X = 13  OR X = 21  THEN B$(3) = "Slot " + STR$(DS) +" Drive " + STR$(DN): VTAB 12: PRINT : HTAB 17: PRINT B$(3)" ";: GOTO 2120
  57. 2100  IF X = 10  OR X = 11  THEN 2050
  58. 2110  & BEEP: GOTO 2060
  59. 2120  VTAB 12: PRINT : HTAB 29: INVERSE : PRINT " "DN" ";: NORMAL : PRINT : GOSUB 9700
  60. 2130  & KEY,32,24:X =  PEEK(0): IF X = 27  OR X = 8  THEN  VTAB 12: PRINT : HTAB 17: PRINT B$(3)" ";: GOTO 2050
  61. 2140  IF X = 10  OR X = 11  THEN DN = 3 -DN: GOTO 2120
  62. 2145  IF X >48  AND X <51  THEN DN = X -48:X = 13
  63. 2150  IF X = 13  THEN  GOSUB 9500:B$(3) = "Slot " + STR$(DS) +" Drive " + STR$(DN): VTAB 12: PRINT : HTAB 17: PRINT B$(3)" ";: GOTO 2180
  64. 2160  & BEEP: GOTO 2130
  65. 2170  VTAB 23: PRINT : PRINT "Type new pathname: /";: CALL CL: &  INPUT X$: ON X$ = "" GOTO 2015:P2$ = "/" +X$ +"/": PRINT D$"PREFIX"P2$:PF$ = P2$: GOTO 2015
  66. 2180  VTAB 22: PRINT D$"PREFIX,S"DS",D"DN: PRINT D$"PREFIX": INPUT PFX$: GOTO 2020
  67. 2190  & BOX,M$(1),7,5,13: VTAB 10: PRINT : HTAB 17: PRINT "Reading directory...":CO = 1
  68. 2200  VTAB 22: PRINT D$"OPEN"PFX$",TDIR": VTAB 22: PRINT D$"READ"PFX$: INPUT X$: INPUT X$
  69. 2210  INPUT FI$(CO):CX = CO: IF  MID$ (FI$(CO),18,3) = "AWP"  AND  MID$ (FI$(CO),26,3) <" 41"  THEN CO = CO +1
  70. 2220  IF  LEFT$(FI$(CX),12) < >"BLOCKS FREE:"  THEN 2210
  71. 2230 BF$ =  MID$ (FI$(CX),13,5):BF =  VAL(BF$):CO = CO -1: PRINT D$"CLOSE"
  72. 2240  FOR I = 1 TO CO:FI$(I) =  MID$ (FI$(I),2,15) + MID$ (FI$(I),17,5) + MID$ (FI$(I),25,15): NEXT 
  73. 2250  IF CO = 0  THEN  & BEEP: VTAB 10: PRINT : HTAB 17: PRINT "No useable AWP files in "PFX$: & KEY,25,24: GOTO 2000
  74. 2270  VTAB 1: POKE C8,58: PRINT "Escape: Get File From";: CALL CL: VTAB 23: PRINT : PRINT "Use arrow keys to highlight file, then press Return";: CALL CS
  75. 2280  VTAB 7: PRINT : HTAB 13: PRINT "Disk Volume "PFX$" has "BF" blocks available"
  76. 2290  HTAB 14: PRINT "Name           Type Blocks   Date": HTAB 13: & RPT,189,37
  77. 2300  & SHOW,FI$(1),CO,8,12,11,27:X =  PEEK(0): IF X = 27  THEN 2000
  78. 2350 NA$ =  LEFT$(FI$(X),15)
  79. 2360  PRINT D$"BLOAD"PFX$;NA$",A$3000,TAWP,B300": GOTO 60
  80. 3000  VTAB 1: HTAB 31: PRINT "  SELECT COLUMNS  ";: GOSUB 9600
  81. 3010  & BOX,M$(3),7,5,13: CALL CL: PRINT : CALL CL: PRINT : CALL CL
  82. 3020  VTAB 8: PRINT : HTAB 14: PRINT "You may use 2 or 3 columns."
  83. 3040  VTAB 12: PRINT : HTAB 14: PRINT "Original Value: "NC:I = NC
  84. 3050  VTAB 14: PRINT : HTAB 14: PRINT "Current Value: ";: INVERSE : PRINT " "I" ";: NORMAL : PRINT 
  85. 3060  GOSUB 9700
  86. 3070  & KEY,32,24:X =  PEEK(0): IF X = 27  THEN 60
  87. 3080  IF X = 10  THEN I = I -1: IF I = 1  THEN I = 3
  88. 3090  IF X = 11  THEN I = I +1: IF I = 4  THEN I = 2
  89. 3100  IF X = 13  THEN NC = I: GOTO 60
  90. 3110  IF X = 10  OR X = 11  THEN 3050
  91. 3120  & BEEP: GOTO 3070
  92. 4000  VTAB 1: HTAB 31: PRINT "  SELECT SPACES  ";: GOSUB 9600
  93. 4010  & BOX,M$(4),7,5,13: CALL CL: PRINT : CALL CL: PRINT : CALL CL
  94. 4020  VTAB 8: PRINT : HTAB 14: PRINT "You may use from 0 to 20 spaces between columns."
  95. 4030  VTAB 12: PRINT : HTAB 14: PRINT "Original Value: "NS:I = NS
  96. 4040  VTAB 14: PRINT : HTAB 14: PRINT "Current Value: ";: INVERSE : PRINT " "I" ";: NORMAL : PRINT " ";: PRINT 
  97. 4050  VTAB 23: PRINT : PRINT "Use up/down arrow keys to change value; press Return when done";: CALL CL
  98. 4060  & KEY,32,24:X =  PEEK(0): IF X = 27  THEN 60
  99. 4070  IF X = 10  THEN I = I -1: IF I =  -1  THEN I = 20
  100. 4080  IF X = 11  THEN I = I +1: IF I = 21  THEN I = 0
  101. 4090  IF X = 13  THEN NS = I: GOTO 60
  102. 4100  IF X = 10  OR X = 11  THEN 4040
  103. 4110  & BEEP: GOTO 4060
  104. 4400  VTAB 1: HTAB 31: PRINT "SET LEFT MARGIN";: GOSUB 9600
  105. 4410  & BOX,M$(4),7,5,13: CALL CL: PRINT : CALL CL: PRINT : CALL CL
  106. 4420  VTAB 8: PRINT : HTAB 14: PRINT "You may indent from 1 to 20 spaces."
  107. 4430  VTAB 12: PRINT : HTAB 14: PRINT "Original Value: "IS:I = IS
  108. 4440  VTAB 14: PRINT : HTAB 14: PRINT "Current Value: ";: INVERSE : PRINT " "I" ";: NORMAL : PRINT " ";: PRINT 
  109. 4450  VTAB 23: PRINT : PRINT "Use up/down arrow keys to change value; press Return when done";: CALL CL
  110. 4460  & KEY,32,24:X =  PEEK(0): IF X = 27  THEN 60
  111. 4470  IF X = 10  THEN I = I -1: IF I = 0  THEN I = 20
  112. 4480  IF X = 11  THEN I = I +1: IF I = 21  THEN I = 1
  113. 4490  IF X = 13  THEN IS = I: GOTO 60
  114. 4500  IF X = 10  OR X = 11  THEN 4440
  115. 4510  & BEEP: GOTO 4460
  116. 5000  VTAB 1: HTAB 33: PRINT " CHANGE PRINTER  ";: GOSUB 9600
  117. 5010  & BOX,M$(6),7,5,13: CALL CL: PRINT : CALL CL: PRINT : CALL CL
  118. 5015  VTAB 9: PRINT : HTAB 13: PRINT "Current Slot:  "SL" "
  119. 5050  VTAB 9: PRINT : POKE C8,26: INVERSE : PRINT " "SL" ";: NORMAL : PRINT 
  120. 5060  GOSUB 9700
  121. 5070  & KEY,32,24:X =  PEEK(0): IF X = 27  THEN 60
  122. 5080  IF X = 10  THEN SL = SL -1: IF SL = 0  THEN SL = 7
  123. 5090  IF X = 11  THEN SL = SL +1: IF SL = 8  THEN SL = 1
  124. 5100  IF X = 13  THEN 60
  125. 5110  IF X = 10  OR X = 11  THEN  GOTO 5050
  126. 5120  & BEEP: GOTO 5070
  127. 9500  VTAB 23: PRINT : PRINT "Type number or use arrow keys, then press Return           See Manual for Help";: RETURN 
  128. 9600  VTAB 1: POKE C8,58: PRINT "  Escape: Galley Menu";: CALL CL: GOSUB 9500: RETURN 
  129. 9700  VTAB 23: PRINT : PRINT "Use up/down arrow keys to change value; press Return when done";: CALL CL: RETURN 
  130. 9800  PRINT D$"PREFIX/": IF OP$ < >"/"  THEN  PRINT D$"PREFIX"OP$
  131. 9810  POKE 1014,A1: POKE 1015,A2: POKE SD,AS: POKE SD +1,AD: CALL 48888: RETURN 
  132. 10000 ER =  PEEK(222):EL =  PEEK(218) +256 * PEEK(219): PRINT ER,EL: GET X$
  133. 10004  IF ER = 77  OR ER = 12  THEN  HOME : PRINT "<CTRL-G>INSUFFICIENT MEMORY; PLEASE REBOOT": END 
  134. 10005  IF EL = 30  THEN  PRINT "<CTRL-G>A disk must be in the drive": GOSUB 9800: END : GOTO 30
  135. 10015  IF EL = 35  THEN  PRINT "<CTRL-G>The file MENUS must be on the disk": GOSUB 9800: END 
  136. 10025  IF EL = 40  THEN  PRINT "<CTRL-G>The file GALLEY.CODE must be on the disk": GOSUB 9800: END 
  137. 10040  IF EL = 2360  THEN  & BEEP: VTAB 23: PRINT : PRINT "Unable to load file; press Return";:NA$ = "None": CALL CL: & KEY,18,24: GOTO 2000: GOTO 2360
  138. 10045  IF EL = 195  THEN  VTAB 23: PRINT : PRINT "Insert the MacroWorks disk; press Return ";: CALL CL: GET X$: ON X$ < > CHR$(27) GOTO 195: RUN 
  139. 10048  IF EL = 9800  THEN  & BEEP: VTAB 23: PRINT : PRINT "Insert the MacroWorks disk; press Return";: CALL CL: & KEY,21,24: GOTO 9800
  140. 10050  IF EL >2000  AND EL <2250  THEN  & BEEP: VTAB 23: PRINT : PRINT "Unable to find directory; press Return";: CALL CL: & KEY,20,24: GOSUB 9500: GOTO 2030
  141. 10060  DATA  "Print the Current File","Load a Word Processor File","Select the Number of Columns","Set Space between Columns","Set Left Margin","Set Printer Slot","Quit" : REM  A$(6)
  142. 10070  DATA  "Preview on Screen","Print to Current Printer","Current Directory:","Slot 6 Drive 1","Another Slot and Drive","Another Pathname": REM  B$(5)
  143. 10090  DATA  "Galley Menu","Load a File","Print the File","Select Columns","Select Spaces","Set Left Margin","Select Printer Slot" : REM  M$(6)